<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd-socket-activate
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd-socket-activate 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd-socket-activate"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd-socket-activate — 测试基于套接字启动的守护进程</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">systemd-socket-activate</code>  [OPTIONS...]  <em class="replaceable"><code>daemon</code></em>  [OPTIONS...]</p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd-socket-activate.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><span class="command"><strong>systemd-socket-activate</strong></span>
    用于测试启动基于套接字启动的服务进程。
    还可用于针对单个连接启动单独的服务进程实例。
    </p><p>可以通过  <em class="replaceable"><code>daemon</code></em>  之后的  [OPTIONS...]
    给要启动的服务进程传递命令行选项。
    </p><p>如果使用了 <code class="option">--inetd</code> 选项，那么 socket 文件描述符将被用作被调用进程的标准输入与标准输出。
    否则，将继承现有的标准输入与标准输出，而 socket 将被作为3号或更高的文件描述符。
    通过 <code class="varname">$LISTEN_FDS</code> 传递给 <span class="command"><strong>systemd-socket-activate</strong></span> 的 socket 将会被直接传递给被调用的进程，
    通过 <code class="option">--listen=</code> 指定的其他 socket 将会使用连续描述符(consecutive descriptor)。
    <span class="command"><strong>systemd-socket-activate</strong></span> 默认在流式套接字(stream socket)上监听，
    但是可以使用 <code class="option">--datagram</code> 选项改为在数据报套接字(datagram socket)上监听，
    或者使用 <code class="option">--seqpacket</code> 选项改为在顺序包套接字(sequential packet socket)上监听。
    </p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项">选项<a class="headerlink" title="Permalink to this headline" href="systemd-socket-activate.html#%E9%80%89%E9%A1%B9">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="-l address"><span class="term"><code class="option">-l <em class="replaceable"><code>address</code></em></code>, </span><span class="term"><code class="option">--listen=<em class="replaceable"><code>address</code></em></code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#-l%20address">¶</a></dt><dd><p>在指定的 <em class="replaceable"><code>address</code></em> 上监听。
        接受一个类似 "<code class="literal">2000</code>"(端口) 或
        "<code class="literal">127.0.0.1:2001</code>"(地址:端口) 这样的字符串。</p></dd><dt id="-a"><span class="term"><code class="option">-a</code>, </span><span class="term"><code class="option">--accept</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#-a">¶</a></dt><dd><p>为每个连接启动一个服务进程实例，
        并传递连接套接字。</p></dd><dt id="-d"><span class="term"><code class="option">-d</code>, </span><span class="term"><code class="option">--datagram</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#-d">¶</a></dt><dd><p>在数据报套接字(<code class="constant">SOCK_DGRAM</code>)上监听，而不是默认的流式套接字(<code class="constant">SOCK_STREAM</code>)。
        不能与 <code class="option">--seqpacket</code> 同时使用。</p></dd><dt id="--seqpacket"><span class="term"><code class="option">--seqpacket</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#--seqpacket">¶</a></dt><dd><p>在顺序包套接字(<code class="constant">SOCK_SEQPACKET</code>)上监听，而不是默认的流式套接字(<code class="constant">SOCK_STREAM</code>)。
        不能与
        <code class="option">--datagram</code> 同时使用。</p></dd><dt id="--inetd"><span class="term"><code class="option">--inetd</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#--inetd">¶</a></dt><dd><p>使用 inetd 协议传递文件描述符，也就是作为标准输入与标准输出，
        而不是新式的使用 <code class="varname">$LISTEN_FDS</code>
        变量来传递文件描述符。</p></dd><dt id="-E VAR=VALUE"><span class="term"><code class="option">-E <em class="replaceable"><code>VAR</code></em>[<span class="optional">=<em class="replaceable"><code>VALUE</code></em></span>]</code>, </span><span class="term"><code class="option">--setenv=<em class="replaceable"><code>VAR</code></em>[<span class="optional">=<em class="replaceable"><code>VALUE</code></em></span>]</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#-E%20VAR=VALUE">¶</a></dt><dd><p>向被调用的进程传递环境变量。
        如果在 <em class="replaceable"><code>VAR</code></em> 后面
        紧跟着 "<code class="literal">=</code>" 符号，
        那么会将其视为"变量=值"的结构。
        否则表示将 <span class="command"><strong>systemd-socket-activate</strong></span> 所拥有的同名变量传递过去。
        </p></dd><dt id="--fdname=NAME:NAME…"><span class="term"><code class="option">--fdname=</code><em class="replaceable"><code>NAME</code></em>[<span class="optional">:<em class="replaceable"><code>NAME</code></em>…</span>]</span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#--fdname=NAME:NAME%E2%80%A6">¶</a></dt><dd><p>指定要传递的文件描述符名称。
        这等价于在单元文件中设置 <code class="varname">FileDescriptorName=</code> 并且启用
        <a href="http://www.jinbuguo.com/systemd/sd_listen_fds_with_names.html#"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds_with_names</span>(3)</span></a> 。
        可以多次使用此选项以指定多个描述符，也可以在同一个选项中使用冒号分隔多个描述符。
        如果给出的名字多于文件描述符的个数，那么多出的名字将会被忽略。
        如果给出的名字少于文件描述符的个数，那么多出的文件描述符将被视为未命名的。
        </p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#-h">¶</a></dt><dd><p><a name="help-text"></a>显示简短的帮助信息并退出。
    </p></dd><dt id="--version"><span class="term"><code class="option">--version</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#--version">¶</a></dt><dd><p><a name="version-text"></a>显示简短的版本信息并退出。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="环境变量">环境变量<a class="headerlink" title="Permalink to this headline" href="systemd-socket-activate.html#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="$LISTEN_FDS"><span class="term"><code class="varname">$LISTEN_FDS</code>, </span><span class="term"><code class="varname">$LISTEN_PID</code>, </span><span class="term"><code class="varname">$LISTEN_FDNAMES</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#%24LISTEN_FDS">¶</a></dt><dd><p>参见
        <a href="http://www.jinbuguo.com/systemd/sd_listen_fds.html#"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a> 手册。</p></dd><dt id="$SYSTEMD_LOG_TARGET"><span class="term"><code class="varname">$SYSTEMD_LOG_TARGET</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_LEVEL</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_COLOR</code>, </span><span class="term"><code class="varname">$SYSTEMD_LOG_LOCATION</code></span><a class="headerlink" title="Permalink to this term" href="systemd-socket-activate.html#%24SYSTEMD_LOG_TARGET">¶</a></dt><dd><p>与
        <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a> 中的含义相同。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.8"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="systemd-socket-activate.html#%E4%BE%8B%E5%AD%90">¶</a></h2><div class="example"><a name="id-1.8.2"></a><p class="title"><b>例 1. 在 2000 端口上运行一个回显服务。</b></p><div class="example-contents"><pre class="programlisting">$ systemd-socket-activate -l 2000 --inetd -a cat</pre></div></div><br class="example-break"><div class="example"><a name="id-1.8.3"></a><p class="title"><b>例 2. 运行一个基于套接字启动的 <span class="command">systemd-journal-gatewayd</span> 实例</b></p><div class="example-contents"><pre class="programlisting">$ systemd-socket-activate -l 19531 /usr/lib/systemd/systemd-journal-gatewayd</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="id-1.9"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd-socket-activate.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemd.socket.html#"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
      <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
      <a href="systemd-run.html#"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a>,
      <a href="http://www.jinbuguo.com/systemd/sd_listen_fds.html#"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
      <a href="http://www.jinbuguo.com/systemd/sd_listen_fds_with_names.html#"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds_with_names</span>(3)</span></a>,
      <a href="http://man7.org/linux/man-pages/man1/cat.1.html"><span class="citerefentry"><span class="refentrytitle">cat</span>(1)</span></a>
    </p></div></div></body></html>
